package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.mess.ArticleVisitStreamMess;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.comment.pojos.CommentSaveDto;
import com.heima.model.common.dtos.PageResponseResult;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.search.vos.SearchArticleVo;
import com.heima.model.wemedia.dtos.WmCommentDto;

public interface ArticleService extends IService<ApArticle> {
    /**
     * 加载首页 1: 加载首页 更多 2：加载最新
     * @param dto
     * @param type
     * @return
     */
    ResponseResult load(ArticleHomeDto dto, Short type);

    /**
     * 保存app端文章
     * @param articleDto
     * @return
     */
    ResponseResult saveArticle(ArticleDto articleDto);


    /**
     * 上架文章 保存es
     * @param articleId
     * @return
     */
    // todo 上架文章到es
    ResponseResult getArticleToES(Long articleId);

    /**
     * 首页加载热点文章
     * @param dto
     * @param loadtypeLoadMore
     * @return
     */
    ResponseResult load2(ArticleHomeDto dto, Short loadtypeLoadMore);

    /**
     * 更新文章的分值，同时更新缓存中的热点文章数据
     * @param mess
     */
    void updateScore(ArticleVisitStreamMess mess);

    /**
     * 通过文章id 得到作者信息
     * @param dto
     * @return
     */
    ResponseResult getAuthorInfo(CommentSaveDto dto);

    /**
     * 一段时间文章信息的统计
     * @param dto
     * @return
     */
    ResponseResult newsDimension(WmCommentDto dto);

    /**
     * 分页展示文章列表，展示当前时间范围内的具体文章阅读、评论、收藏的数量。
     * @param dto
     * @return
     */
    PageResponseResult newsPage(WmCommentDto dto);
}
